home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / grow.zip / GROW.BAS < prev    next >
BASIC Source File  |  1990-03-03  |  3KB  |  118 lines

  1. 10 'GROW PROGRAM
  2. 20 'JANUARY VOL 6 #1, 1980
  3. 30 'Creative Computing
  4. 40 '
  5. 1000 CLS
  6. 1010 GOSUB 2000
  7. 1020 GOSUB 3000
  8. 1030 GOSUB 4000
  9. 1040 GOTO 1020
  10. 2000 'INITIALIZE
  11. 2010 'CLEAR 300,2
  12. 2020 P=0
  13. 2030 N$="INIT"
  14. 2040 I$=" INTRO "
  15. 2060 GOSUB 4000
  16. 2070 GOTO 1020
  17. 3000 'INPUT LINE
  18. 3010 LINE INPUT ">";I$
  19. 3020 I$=" "+I$+" "
  20. 3030 GOTO 1030
  21. 4000 'PROCESS LINE
  22. 4010 OPEN "I",1,N$
  23. 4020 GOSUB 5000
  24. 4040 IF F=1 THEN 4110
  25. 4045 CLOSE
  26. 4050 OPEN "I",1,"DEFAULT"
  27. 4060 GOSUB 5000
  28. 4080 IF F=1 THEN 4110
  29. 4090 GOSUB 5800
  30. 4100 GOTO 4120
  31. 4110 GOSUB 5400
  32. 4120 CLOSE
  33. 4130 RETURN
  34. 5000 'FIND LINE
  35. 5010 F=0
  36. 5020 GOSUB 6000
  37. 5030 IF EOF(1) THEN RETURN
  38. 5040 GOSUB 6200
  39. 5050 IF S$="" THEN 5020
  40. 5060 S$=" "+S$+" "
  41. 5070 IF INSTR(I$,S$)=0 THEN 5020
  42. 5080 F=1
  43. 5090 RETURN
  44. 5400 'DO ACTIONS
  45. 5410 GOSUB 6000
  46. 5420 GOSUB 6200
  47. 5430 IF S$="" THEN RETURN
  48. 5440 T$=LEFT$(S$,1)
  49. 5443 IF T$="$" THEN I$=" "+MID$(T$,2,LEN(T$)-1)+" ": GOTO 5420
  50. 5545 IF T$="C" THEN CLS: GOTO 5420
  51. 5450 IF T$="P" THEN PRINT MID$(S$,2): GOTO 5420
  52. 5453 IF T$="*" THEN PRINT "YOUR SCORE IS";P;".":GOTO 5420
  53. 5460 IF T$="Q" THEN PRINT "QUIT WITH ";P;" POINTS.":END
  54. 5470 IF T$="+" THEN GOSUB 6400:P=P+N:GOTO 5420
  55. 5480 IF T$="-" THEN GOSUB 6400:P=P-N:GOTO 5420
  56. 5490 IF T$="G" THEN GOSUB 7000:RETURN
  57. 5500 IF T$="X" THEN GOSUB 8000:RETURN
  58. 5800 'RANDOM RESPONSE
  59. 5810 R=INT(RND*3)+1
  60. 5820 IF R=1 THEN PRINT "HUH?" ELSE IF R=2 THEN PRINT "WHAT" ELSE PRINT "I DON'T UNDERSTAND"
  61. 5830 RETURN
  62. 6000 'SKIP BLOCK
  63. 6010 IF EOF(1) THEN S$="":RETURN
  64. 6020 LINE INPUT #1,S$
  65. 6030 IF S$<>"" THEN 6010
  66. 6040 RETURN
  67. 6200 'GET LINE
  68. 6210 IF EOF(1) THEN S$="" ELSE LINE INPUT #1,S$
  69. 6220 RETURN
  70. 6400 'CONVERT
  71. 6410 N=0
  72. 6420 T=2
  73. 6430 IF T>LEN(S$) THEN RETURN
  74. 6440 N=N+10+ASC(MID$(S$,T,1))-ASC("0")
  75. 6450 T=T+1
  76. 6460 GOTO 6430
  77. 6600 'INPUT NEW DATA
  78. 6610 LINE INPUT ":";I$
  79. 6620 PRINT #1,I$
  80. 6630 IF I$<>"" THEN 6610
  81. 6640 RETURN
  82. 6800 'COPY MODE
  83. 6805 CLOSE
  84. 6810 OPEN "I",2,N$
  85. 6820 OPEN "O",1,"TEMP"
  86. 6830 IF EOF(2) THEN RETURN
  87. 6840 LINE INPUT #2,I$
  88. 6850 PRINT #1,I$
  89. 6860 GOTO 6830
  90. 7000 'GOTO NEW NODE
  91. 7010 IF (LEN(S$)<2) OR (LEN(S$)>9) THEN RETURN
  92. 7020 CLOSE
  93. 7030 N$=MID$(S$,2)
  94. 7040 ON ERROR GOTO 7100
  95. 7050 OPEN "I",1,N$
  96. 7060 GOSUB 6200
  97. 7070 IF S$="" THEN 7150
  98. 7080 PRINT S$
  99. 7090 GOTO 7060
  100. 7100 RESUME 7110
  101. 7110 CLOSE
  102. 7120 OPEN "O",1,N$
  103. 7130 PRINT "DESCRIBE ";N$
  104. 7140 GOSUB 6600
  105. 7150 ON ERROR GOTO 0
  106. 7160 RETURN
  107. 8000 'EXTEND MODE
  108. 8010 CLOSE
  109. 8020 GOSUB 6800
  110. 8030 PRINT "KEYWORDS/PHRASES"
  111. 8040 GOSUB 6600
  112. 8050 PRINT "ACTIONS"
  113. 8060 GOSUB 6600
  114. 8068 CLOSE
  115. 8069 KILL N$
  116. 8070 NAME "TEMP" AS N$
  117. 8080 RETURN
  118.